/**
*   Game.h
*
*   Contains everything which keeps track of the game.
*/
#ifndef GAME_H_INCLUDED
#define GAME_H_INCLUDED

#include <cstdlib>
#include "Level.h"
#include "Blocks.h"
#include "Bar.h"
#include "Block.h"
#include <vector>

class Game{
    private:
        //Vars
        Level _level;               //Contails the level / playfield
        unsigned int _score;        //Score
        unsigned int _speed;        //Speed of the falling blocks
        unsigned int _curBlockX;    //Current location of Block on X
        unsigned int _curBlockY;    //Current location of Block on Y
        bool _started;              //Is the game started
        bool _falling;              //Block is falling or not (time for new block)
        Blocks* _curBlock;          //The current block
        Blocks* _nextBlock;         //The next block
        vector<Blocks*> _blocks;    //Contains available blocks
        //Methods
        void init();                //Initialize the game
        void pickBlock();           //Update the current block and the next block
//        void update();              //Update gamestats
    public:
        Game();                     //Default constructor
        ~Game();                    //Default deconstructor
        string getGameInString();   //Returns the game in a string representation mainly for DEBUG purpose
        void startGame();           //Start the game

        void update();              //Update gamestats        //TEMP!!
    };
#endif
